package top.conangao.common.entity;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.mapstruct.MapperConfig;
import org.mapstruct.MappingConstants;

import java.util.List;

/**
 * @author ConanGao
 * @description BaseAssemble
 * @since 1.0
 **/
@MapperConfig(componentModel = MappingConstants.ComponentModel.SPRING)
public interface BaseAssemble<VO extends BaseVO,DTO extends BaseDTO,DO extends BaseDO> {
    DTO vo2dto(VO baseVO);
    VO dto2vo(DTO baseDTO);
    DO vo2do(VO baseVO);
    VO do2vo(DO baseDO);
    
    List<VO> dto2vo(List<DTO> listDTO);
    List<DTO> vo2dto(List<VO> listVO);
    List<VO> do2vo(List<DO> listDO);
    List<DO> vo2do(List<VO> listVO);

    Page<VO> dto2vo(Page<DTO> pageDTO);
    Page<DTO> vo2dto(Page<VO> pageVO);
    Page<VO> do2vo(Page<DO> pageDO);
    Page<DO> vo2do(Page<VO> pageVO);
    
}
